//主进程给渲染进程发送消息
var { ipcMain,BrowserWindow,Menu,shell,Tray} =require('electron');
var path=require('path');
// 应用图标
var iconTray=new Tray(path.join(__dirname,'../img/favicon.ico'));
var trayMenu=Menu.buildFromTemplate([
    {
        label:'设置',
        click:function(){
            console.log('setting');
        }
    },
    {
        label:'升级',
        click:function(){
            shell.openExternal('http://test.mg.eglpt.com');
        }
    },
    {
        label:'退出',
        click:function(){
            if (process.platform !== 'darwin') {
                app.quit();
            }
        }
    }
]);
// 设置右键菜单和应用名称
iconTray.setContextMenu(trayMenu);
//设置鼠标指针在托盘图标上悬停时显示的文本
iconTray.setToolTip('eglpt-app');
//实现点击关闭按钮让应用保存在托盘里面 ，双击托盘打开应用
var sysWin=BrowserWindow.getFocusedWindow();
sysWin.on('close',(e)=>{
    console.log(sysWin.isFocused());
    if(!sysWin.isFocused()){
        sysWin=null;
    }else{
        e.preventDefault();  //阻止窗口的关闭事件
        sysWin.hide();
    }
})
//监听任务栏图标的点击事件
iconTray.on('double-click',function(){
    sysWin.show();
})

//接收广播的数据
ipcMain.on('sendM',function(event,data){
    console.log("ipcMain-sendM-getData: ",data);
    //console.log(event);
})
//接收广播 并且返回处理结果
ipcMain.on('sendReplay',function(event,data){
    console.log(data);
    // console.log(event);
    //主进程给渲染进程广播数据
    event.sender.send('replay','get data:'+data);
})
//接收同步
ipcMain.on('sendSync',function(event,data){
    console.log(data);
    //给渲染进程返回数据
    event.returnValue='你好 this is sync main';
})

/**
 * 渲染进程 调用主进程 创建窗口
 */
ipcMain.on('openWindow',function(event,data){
    //获取当前窗口的对象
    var winId=BrowserWindow.getFocusedWindow().id;
    var win=null;
    win=new BrowserWindow({
        width:500,
        height:500,
        // frame:false,
        // fullscreen:true
        //解决无法加载node.js问题
        webPreferences: {nodeIntegration: true}
    })
    win.loadURL(path.join('file:',__dirname,'../pages/newWindow.html'));
    // 任务栏的进度条
    win.setProgressBar(0.5)
    //打开调试工具
    win.webContents.openDevTools();
    win.on('closed',()=>{
        win=null;
    })
   //通过win.webContents.send把当前数据广播给 news进程
    win.webContents.on('did-finish-load',function(){
        win.webContents.send('toNews',data,winId);
    })

})
